Subject: Member Info / DLSw operation

From: "Randall L. Murphy" <[email-masked]>
Date: Mon, 26 Jul 93 17:07:43 EDT

Name:     Randy Murphy
Company:  IBM
Email:    [email-masked]
Phone:    (919) 254-2932
Status:   Active member

I would like to start by apologizing for the lateness of this note.
Due to vacation and an illness in the family I have been unable to
participate up until now.  I will however be an active member of this
work group.

IBM's basic philosophy in our original DLSw implementation
is for a network of Data Link Switches
to adhere to a IEEE 802.2/802.5 model.  The Data Link Switches
convert Switch-to-Switch (SSP) messages to the appropriate station
level messages, depending on the DLC type.  This allows us to
support unlike DLCs on each end of a DLSw circuit.
With this approach XID3s going 802.2-to-802.2 go through as-is.
The presence of a "non-802.2" station on either end of a circuit
may require some massaging of the XID but at least the XID3s
passed between switches are standardized.

IBM's implementation of DLSw does pass XIDs through the network
(except for an XID that is used to initiate a connection in lieu
of a TEST).  The Data Link Switches do not have to maintain
the XID3 FSMs.  An origin DLSw will take in an XID3 and pass it to
the target DLSw partner.  The target DLSw partner takes care of
the DLC appropriate number and timing of retries.
The origin DLSw will ignore subsequent XID3s until
it receives the response to the XID3 it sent across to the target
station.  This eliminates the "oscillatory behavior during XID
negotiation when the network delay is slightly greater than the
XID3 retry timer" that Wayne Clark referred to in his note
dated 14Jul93.

SNRMs and SABME are passed through the network using the SSP
CONTACT message.  They too are retried on the target side
in a DLC-appropriate manner and not retried through the network.
They are acknowledged immediately to prevent network delays from
causing the station to time out and bring the DLSw circuit down.

After the SABME/UA exchange between an origin station and a DLSw,
the origin DLSw side goes into local busy state to prevent the origin
station from sending an I-frame to the target station before the
target station is ready to accept it.

The following flows illustrate the RFC 1434 connection for both ABM and NRM.
For NRM stations that do not use XIDs, the circuit establishment
frames are generated by the DLSw using configuration data.

Thanks to Wayne Clark for the flow template.

===========================================================================

RFC1434 Connection Sequence:  Normal Case

   ======                            ___                           ======
   |    |        ---------        __/   \__       ---------        |    |
   |    |      __|  _|_  |__     /   IP    \    __|  _|_  |__      |    |
   ======        |   |   |      <  Network  >     |   |   |        ======
  /______\       ---------       \__     __/      ---------       /______\
                Origin DLSw         \___/        Target DLSw
   Origin         partner                          partner         Target
   Station                                                        Station

                DISCONNECTED                    DISCONNECTED
XID/TEST                       CANUREACH                       XID/TEST
----------->                   ------------>                   ----------->
   .                                          RESOLVE_PENDING     .
   .                                                              .
   .                                                              .
XID/TEST                                                       XID/TEST
-----------> drop until we respond                      retry  ----------->

                                    ICANREACH                       XID/TEST
                                <------------                   <-----------
                                                CIRCUIT_PENDING
     XID/TEST                    REACH_ACK
 <-----------                  ------------>
             CIRCUIT_ESTABLISHED             CIRCUIT_ESTABLISHED
     XID                           XIDFRAME                         XID
<---------->                    <----------->                   <---------->

SABME/SNRM
----------->
          UA                   CONTACT                         SABME/SNRM
 <----------                   ------------>                   ----------->
   .          CONNECT_PENDING                 CONTACT_PENDING     .
   .                                                              .
   .                                                              .
SABME/SNRM                                                     SABME/SNRM
-----------> drop until we respond                      retry  ----------->

RR
----------->  (link station in local busy state)
          RNR
 <-----------                       CONTACTED                             UA
                               <-------------                  <------------
                  CONNECTED                        CONNECTED
RR                                                             RR
----------->                                                   ------------>
           RR                                                              RR
 <-----------                                                   <------------

   IFRAME                          IFRAME                          IFRAME
<---------->                    <----------->                   <---------->

===========================================================================

In Wayne Clark's initial comments on RFC 1434 (note of 08Jul93) he
mentions that the Disconnect sequence will work for ABM DLC but not
a NRM DLC.  The following flows illustrate how the 6611 DLSw
implementation uses RFC 1434 for NRM disconnect.  Again, the message
flows between DLSw partners run in an "ABM mode" and it is the switches
on the end that take care of NRM details.
===========================================================================

RFC1434 Normal Response Mode Normal Disconnection Sequence:

   ======                            ___                           ======
   |    |        ---------        __/   \__       ---------        |    |
   |    |      __|  _|_  |__     /   IP    \    __|  _|_  |__      |    |
   ======        |   |   |      <  Network  >     |   |   |        ======
  /______\       ---------       \__     __/      ---------       /______\
                Origin DLSw         \___/        Target DLSw
   Origin         partner                          partner         Target
   Station                                                        Station

Primary-initiated
Disconnection:

                 CONNECTED                        CONNECTED
DISC
----------->
          UA                     HALT_DL                        DISC
 <----------                    ------------>                   ----------->
             DISCONNECT_PENDING                  HALT_PENDING
                                     DL_HALTED                          UA/DM
                                 <------------                   <-----------
                DISCONNECTED                     DISCONNECTED

Note: this also represents the ABM disconnection sequence
-----------------------------------------------------------------------------

Secondary-Initiated
Disconnection:

                 CONNECTED                       CONNECTED
                                                                           RD
                                                                 <-----------
                                                                DISC
                                                                ----------->
          RD                         HALT_DL                            UA/DM
 <----------                   <------------                     <-----------
               HALT_PENDING                  DISCONNECT_PENDING
DISC
---------->
          UA                  DL_HALTED
 <----------                  ------------>
               DISCONNECTED                    DISCONNECTED

===========================================================================

RFC1434 Normal Response Mode Normal Disconnection Sequence: SDLC Link Outage

   ======                            ___                           ======
   |    |        ---------        __/   \__       ---------        |    |
   |    |      __|  _|_  |__     /   IP    \    __|  _|_  |__      |    |
   ======        |   |   |      <  Network  >     |   |   |        ======
  /______\       ---------       \__     __/      ---------       /______\
                Origin DLSw         \___/        Target DLSw
   Origin         partner                          partner         Target
   Station                                                        Station

  Case 1
Primary-side Outage:

                 CONNECTED                        CONNECTED
 <SDLC LINE
    DROP>
                                 HALT_DL                        DISC
                                ------------>                   ----------->
             DISCONNECT_PENDING                  HALT_PENDING
                                     DL_HALTED                          UA/DM
                                 <------------                   <-----------
                DISCONNECTED                     DISCONNECTED

-----------------------------------------------------------------------------

  Case 2
Secondary-side Outage:

                                                                 <SDLC LINE
                                                                   DROP>
          RD                         HALT_DL
 <----------                   <------------
               HALT_PENDING                  DISCONNECT_PENDING
DISC
---------->
          UA                  DL_HALTED
 <----------                  ------------>
               DISCONNECTED                    DISCONNECTED

===========================================================================

RFC1434 Normal Response Mode Normal Disconnection Sequence: TCP Session Loss

   ======                            ___                           ======
   |    |        ---------        __/   \__       ---------        |    |
   |    |      __|  _|_  |__     /   IP    \    __|  _|_  |__      |    |
   ======        |   |   |      <  Network  >     |   |   |        ======
  /______\       ---------       \__     __/      ---------       /______\
                Origin DLSw         \___/        Target DLSw
   Origin         partner                          partner         Target
   Station                                                        Station

                 CONNECTED                        CONNECTED
                                     TCP
                                 SESSION LOSS

           RD                                                  DISC
<------------                                                  ----------->

DISC                                                                    UA/DM
----------->                                                     <-----------
                                                DISCONNECTED
           UA
 <-----------
                DISCONNECTED

===========================================================================

Regards,
Randy Murphy